package com.menqui.localizame.Activity;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import com.menqui.localizame.R;
import com.menqui.localizame.constantes.ConstantesConfiguracion;
import com.menqui.localizame.estructuras.DatosRuta;
import com.menqui.localizame.estructuras.DatosUsuario;
import com.menqui.localizame.webservice.LocalizameWebService;

public class CompartirRutaActivity extends Activity implements View.OnClickListener {

	private RadioGroup rutasRadioGroup = null;
	private RadioGroup amigosRadioGroup = null;

	private Button btCompartir = null;
	private int rutaSeleccionada = -1;
	private int amigoSeleccionado = -1;

	@Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.compartir_ruta);

        btCompartir = (Button) findViewById(R.id.btCompartir);
        btCompartir.setOnClickListener(this);

        rutasRadioGroup = (RadioGroup) findViewById(R.id.rgRutas);
        amigosRadioGroup = (RadioGroup) findViewById(R.id.rgUsuarios);

        addOpcionesToRutasRadioGroup();
        addOpcionesToAmigosRadioGroup();

        rutasRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

			public void onCheckedChanged(RadioGroup group, int checkedId) {
				rutaSeleccionada = checkedId;
			}
		});

        amigosRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

			public void onCheckedChanged(RadioGroup group, int checkedId) {
				amigoSeleccionado = checkedId;
			}
		});
    }

	private void addOpcionesToRutasRadioGroup() {
		List<DatosRuta> rutas = LocalizameWebService.listarRutas(ConstantesConfiguracion.USERNAME);
		if (rutas.isEmpty()){
			btCompartir.setEnabled(false);
			((TextView) findViewById(R.id.msgElegirRuta)).setText(R.string.msgErrorNoTienesRutas);
		}
		else{
			int index = 0;
			for (DatosRuta iter : rutas){
				RadioButton newRadioButton = new RadioButton(this);
		        newRadioButton.setText(iter.getNombreRuta());
		        newRadioButton.setId(iter.getIdRuta().intValue());
		        LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
		                RadioGroup.LayoutParams.WRAP_CONTENT,
		                RadioGroup.LayoutParams.WRAP_CONTENT);
		        rutasRadioGroup.addView(newRadioButton, index, layoutParams);
		        index++;
			}
		}
	}

	private void addOpcionesToAmigosRadioGroup() {
		List<DatosUsuario> usuarios = LocalizameWebService.listarUsuarios();
		if (usuarios.isEmpty()){
			btCompartir.setEnabled(false);
			((TextView) findViewById(R.id.msgElegirAmigo)).setText(R.string.msgErrorNoTienesAmigos);
		}
		else{
			int index = 0;
			for (DatosUsuario iter : usuarios){
				RadioButton newRadioButton = new RadioButton(this);
				newRadioButton.setText(iter.getUsername());
				newRadioButton.setId(iter.getId());
				LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
						RadioGroup.LayoutParams.WRAP_CONTENT,
						RadioGroup.LayoutParams.WRAP_CONTENT);
				amigosRadioGroup.addView(newRadioButton, index, layoutParams);
				index++;
			}
		}
	}

	public void onClick(View v) {
		if (amigoSeleccionado != -1 && rutaSeleccionada != -1) {
			LocalizameWebService.addAmigoToRuta(String.valueOf(amigoSeleccionado), String.valueOf(rutaSeleccionada));
			Intent intent = new Intent(CompartirRutaActivity.this, LocalizameActivity.class);
			startActivity(intent);
		} else {
			((TextView) findViewById(R.id.msgElegirRuta)).setText(R.string.msgErrorRutaObligatoria);
		}
	}

}
